﻿using System;

using DevExpress.Xpo;

using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation;
using System.ComponentModel;
using DevExpress.ExpressApp;
using DevExpress.Data.Filtering;

namespace SpeedSCM.Module
{
   [NavigationItem("资金管理")]
    [ImageName("BO_Sale_Item_v92")]
    public class 其他收入单 : 单据
    {
        public 其他收入单(Session session)
            : base(session)
        {

        }
        protected override SeedType SeedType
        {
            get { return SeedType.其他收入单; }
        }

        private 往来单位 _付款单位;
        [Custom("Caption", "付款单位")]
        [RuleRequiredField(null,DefaultContexts.Save,"必须选择付款单位")]
        public 往来单位 付款单位
        {
            get { return _付款单位; }
            set { SetPropertyValue<往来单位>("付款单位", ref _付款单位, value); }
        }

        private 银行账户 _收款账户;
        [Custom("Caption", "收款账户")]
        [RuleRequiredField(null,DefaultContexts.Save,"必须选择收款账户")]
        public 银行账户 收款账户
        {
            get { return _收款账户; }
            set { SetPropertyValue<银行账户>("收款账户", ref _收款账户, value); }
        }
        private decimal _实付金额;
        [Custom("Caption", "实付金额")]
        [RuleRequiredField]
        public decimal 实付金额
        {
            get { return _实付金额; }
            set { SetPropertyValue<decimal>("实付金额", ref _实付金额, value); }
        }
        [Association("其他收入单-明细")]
        public XPCollection<其他收入单明细> 其他收入单明细
        {
            get { return GetCollection<其他收入单明细>("其他收入单明细"); }
        }
    }

   [ImageName("BO_Sale_Item_v92")]
   [RuleCombinationOfPropertiesIsUnique(null, DefaultContexts.Save, "其他收入单,其他收入类型", CustomMessageTemplate = "其他收入单中已经存在该其他收入类型")]
   public class 其他收入单明细 : BaseObject
   {
       public 其他收入单明细(Session session)
           : base(session)
       {

       }
       private 其他收入单 _其他收入单;
       [Custom("Caption", "其他收入单")]
       [Association("其他收入单-明细")]
       [Custom("AllowEdit", "False")]
       public 其他收入单 其他收入单
       {
           get { return _其他收入单; }
           set { SetPropertyValue<其他收入单>("其他收入单", ref _其他收入单, value); }
       }
       private 其他收入类型 _其他收入类型;
       [Custom("Caption", "其他收入类型")]
       [RuleRequiredField(null, DefaultContexts.Save, "必须选择其他收入类型")]
       public 其他收入类型 其他收入类型
       {
           get { return _其他收入类型; }
           set { SetPropertyValue<其他收入类型>("其他收入类型", ref _其他收入类型, value); }
       }
       private decimal _收入金额;
       [Custom("Caption", "收入金额")]
       [RuleRequiredField]
       public decimal 收入金额
       {
           get { return _收入金额; }
           set { SetPropertyValue<decimal>("收入金额", ref _收入金额, value); }
       }
       private string _备注;
       [Custom("Caption", "备注")]
       [Size(500)]
       public string 备注
       {
           get { return _备注; }
           set { SetPropertyValue<string>("备注", ref _备注, value); }
       }
   }
}
